Apache Tapestry একটি component-based ওয়েব ফ্রেমওয়ার্ক, যা UI উপাদানগুলি পুনঃব্যবহারযোগ্য এবং মডুলার করে তোলে। Tapestry তে Master Pages এবং Nested Layouts ব্যবহারের মাধ্যমে একটি একক UI ডিজাইন পুনরায় ব্যবহারযোগ্য করা যায় এবং ডেভেলপাররা একটি কেন্দ্রীয় লেআউট ব্যবহার করে তাদের অ্যাপ্লিকেশন ডিজাইনকে সহজে কাস্টমাইজ করতে পারেন।
Tapestry তে Master Page হলো একটি মূল লেআউট যা অ্যাপ্লিকেশনটির শেয়ার্ড UI ডিজাইন এবং কাঠামোকে সংজ্ঞায়িত করে। মাস্টার পেজের মাধ্যমে আপনি একটি সাধারণ লেআউট তৈরি করতে পারেন এবং সেই লেআউটটি বিভিন্ন পেজে পুনঃব্যবহার করতে পারেন।
মাস্টার পেজ মূলত HTML টেমপ্লেটের আকারে তৈরি হয় এবং এটি বিভিন্ন পেজের জন্য একটি শেয়ার্ড কাঠামো প্রদান করে, যেমন header, footer, এবং navigation।
মাস্টার পেজের টেমপ্লেট তৈরি করা
মাস্টার পেজের টেমপ্লেটটি একটি সাধারণ HTML ফাইল যা শেয়ারড UI উপাদান ধারণ করে।
উদাহরণ:
<!-- MasterPage.tml -->
<!DOCTYPE html>
<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_3.xsd">
<head>
<title>Tapestry Application</title>
</head>
<body>
<header>
<h1>My Tapestry Application</h1>
<nav>
<ul>
<li><a href="/home">Home</a></li>
<li><a href="/about">About</a></li>
</ul>
</nav>
</header>
<div id="content">
<!-- Content will be inserted here -->
<t:insert />
</div>
<footer>
<p>© 2024 My Company</p>
</footer>
</body>
</html>
মাস্টার পেজের Java ক্লাস তৈরি করা
মাস্টার পেজে যুক্ত Java ক্লাসটি টেমপ্লেটের জন্য কাজ করবে। সাধারণত, এটি একটি সহজ Layout
ক্লাস হতে পারে যা Tapestry কম্পোনেন্টের মতো কাজ করে।
উদাহরণ:
@Import(stylesheet = "style.css")
public class MasterPage {
// কোন বিশেষ লজিকের প্রয়োজন হলে এখানে যুক্ত করতে পারেন।
}
Tapestry তে Nested Layouts এর মাধ্যমে আপনি একটি মূল মাস্টার পেজে একাধিক উপ-layout (sub-layout) বা nested layouts অন্তর্ভুক্ত করতে পারেন। এতে বিভিন্ন পেজের মধ্যে একটি সাধারণ কাঠামো বজায় থাকে, কিন্তু প্রত্যেকটি পেজে পৃথক পৃথক কনটেন্ট অন্তর্ভুক্ত করা হয়।
Sub-Layout টেমপ্লেট তৈরি করা
একটি sub-layout টেমপ্লেট তৈরি করুন যা মাস্টার পেজের মধ্যে অন্তর্ভুক্ত হবে। উদাহরণস্বরূপ, HomeLayout.tml
একটি পেজের জন্য একটি sub-layout হতে পারে।
<!-- HomeLayout.tml -->
<t:layout>
<h2>Welcome to the Home Page</h2>
<p>This is the main content for the home page.</p>
</t:layout>
Sub-Layout এর Java ক্লাস তৈরি করা
sub-layout এর জন্য একটি Java ক্লাস তৈরি করুন যা মাস্টার পেজের কাঠামো অনুসরণ করে।
@Import(stylesheet = "home.css")
public class HomeLayout {
// উপযুক্ত লজিক বা ইনজেকশন করতে পারেন
}
Main Page এর Layout অন্তর্ভুক্ত করা
আপনি যেকোনো পেজে এই sub-layout বা nested layout ব্যবহার করতে পারেন। উদাহরণস্বরূপ:
<!-- HomePage.tml -->
<t:layout>
<t:insert page="HomeLayout"/>
</t:layout>
এখানে HomeLayout
sub-layout টেমপ্লেটের কনটেন্ট HomePage
তে ইনসার্ট হবে।
মাস্টার পেজ এবং Nested Layouts Tapestry তে UI কাঠামো সহজে পুনঃব্যবহারযোগ্য এবং কাস্টমাইজযোগ্য করতে সহায়ক। মাস্টার পেজ সাধারণভাবে অ্যাপ্লিকেশনের শেয়ারড UI উপাদান (যেমন হেডার, ফুটার, সাইডবার) ধারণ করে, আর Nested Layouts এর মাধ্যমে আপনি সেই কাঠামোতে বিভিন্ন পেজের জন্য কনটেন্ট অন্তর্ভুক্ত করতে পারেন। এটি বড় অ্যাপ্লিকেশন গুলি মেইনটেইন করা এবং কোডের পুনঃব্যবহারযোগ্যতা বাড়ানোর জন্য খুবই কার্যকর।
Read more